jQuery(function ($) {
    // return ;

    function newAdherent() {
        var cl = $('#bureau-adherent-prototype').clone();
        cl.attr('id', null);
        cl.find('input, select').each(function () {
            var n = $(this).attr('name');
            $(this).attr('disabled', null);
            if (n) {
                var idx = $('#bureau .adherent').not('#bureau-adherent-prototype').length;
                $(this).attr('name', n.replace('[]', '[' + idx + ']'));
            }
        });
        cl.appendTo($('#adherents'));
        cl.find('.type-choix').change();
        return cl;
    }

    $('#bureau .ajout').click(function () {
        newAdherent();
    });

    $('#bureau .enleve').live('click', function () {
        $(this).closest('.adherent').remove();
    });

    $('.adherent .type-choix').live('change', function () {
        if (!$(this).closest('#bureau-adherent-prototype').length) {
            var parent = $(this).closest('.adherent');
            parent.find('.type').hide();
            parent.find('.type').attr('disabled', 'disabled');

            parent.find('.type-' + $(this).val()).show();
            parent.find('.type-' + $(this).val()).attr('disabled', null)
        }
    }).change();

    if (typeof window['clubBureau'] === 'object') {
        $.each(window['clubBureau'], function (k, v) {
            var adh = newAdherent();
            adh.find('select.type-choix').val('existante').change();
            adh.find('.type-choix').val('existante').change();
            adh.find('.type-existante').val(v['Numero_Personne']);
            adh.find('.role-input').val(v['Role']);
        });
    }

    $('tr').each(function () {
        var links = $(this).find('a[href]').not('.btn');
        if (links.length === 1) {
            $(this).click(function() {
                window.location = links.attr('href');
            }).hover(function() {
                $(this).toggleClass('hover-link');
            });

        }
    });

    $('.table-linked tr').each(function () {
        var href = $(this).closest('tr[href]').attr('href');
        if (href) {
            $(this).click(function() {
                window.location = href;
            });
        }
    });

    $('#feuille-match .present').change(function () {
    }).change();

    $('#feuille-match tr a.btn, #feuille-match tr input.present').click(function (e) {
        if ($(this).attr('disabled') || $(this).hasClass('disabled')) {
            e.stopPropagation();
            return false;
        }

        function inc(exp, val) {
            var e = $(exp), val = parseInt(val, 10);
            if (e.is('input')) {
                $(exp).val(parseInt(e.val(), 10) + val);
            } else {
                $(exp).text(parseInt(e.text(), 10)*1 + val*1);
            }
        }

        var cl = $(this).closest('td').hasClass('vis') ? 'vis' : 'dom';
        var numper = $(this).closest('td').attr('joueur');
        var val = $(this).closest('a').attr('valeur');

        $(this).attr('disabled', 'disabled');
        var data = {}, onSuccess;
        var that = this;
        if ($(this).hasClass('up-points')) {
            data = {'Action': 'setPointJoueur', 'Points': val};
            onSuccess = function () {
                inc('.points-' + cl, val);
                inc($(that).closest('tr').find('td.' + cl + ' input.points'), val);
            };
        } else if ($(this).hasClass('up-fautes')) {
            data = {'Action': 'setFauteJoueur', 'Points': val};
            onSuccess = function () {
                inc($(that).closest('tr').find('td.' + cl + ' input.fautes'), val);
            };
        } else if ($(this).hasClass('present')) {
            if (!$(this).attr('checked')) {
                data = {'Action': 'unsetTitulaireJoueur', 'Numero_Personne': val};
                onSuccess = function () {
                    $(that).closest('tr').find('td.' + cl + ' a').attr('disabled', 'disabled');
                };
            } else {
                data = {'Action': 'setTitulaireJoueur', 'Numero_Personne': val};
                onSuccess = function () {
                    $(that).closest('tr').find('td.' + cl + ' a').attr('disabled', null);
                };
            }
        }

        data = $.extend(data, {
            'Numero_Personne': $(this).closest('td').attr('joueur'),
            'Numero_Rencontre': $(this).closest('#feuille-match').attr('rencontre')
        });

        $.getJSON(
            'ajax', data,
            function (res) {
                onSuccess(res);
                $(that).attr('disabled', null);
            }
        );

        if ($(this).is('a')) {
            e.stopPropagation();
            return false;
        }
    });

    $('.present').each(function () {
        var cl = $(this).closest('td').hasClass('vis') ? 'vis' : 'dom';
        if ($(this).attr('checked')) {
            $(this).closest('tr').find('a').attr('disabled', null);
        } else {
            $(this).closest('tr').find('a').attr('disabled', 'disabled');
        }
    });


    $('.datepicker').datepicker({format: 'yyyy-mm-dd'});
});
